﻿using CleanArchitecture.Infrastructure.Entities;
using CleanArchitecture.Infrastructure.Entities.System.DataDic;
using CleanArchitecture.Infrastructure.Models.SystemManage;
using System.Collections.Generic;

namespace CleanArchitecture.Web.Factories
{
    public interface ISystemManageModelFactory
    {
        /// <summary>
        /// 为后端服务调用返回指定数据
        /// </summary>
        /// <param name="grouptype"></param>
        /// <returns></returns>
        IList<SystemDataDicTree> GetSystemDataDicTreesByGroupType(EntityEnumConfig.DataDicGroup grouptype);
        /// <summary>
        /// 按前端树结构组合数据结构
        /// </summary>
        /// <param name="grouptype"></param>
        /// <returns></returns>
        IList<SystemDataDicTreeNodeModel> PrepareSystemDataDicTreeNodes(int grouptype);
        /// <summary>
        /// Prepare paged system module button item list model
        /// </summary>
        /// <returns>SystemDataDicTreeSearchModel</returns>
        SystemDataDicButtonListModel PrepareSystemDataDicButtonListModel(SystemDataDicTreeSearchModel searchModel);

        IList<SystemModuleTreeNodeModel> PrepareSystemModuleTreeNodes();

        IList<SystemModuleModel> GetSystemModuleModelsById(int id);

        SystemModuleModel GetSystemModuleModelById(int id);
    }
}
